package com.lcf.system.dto;

import com.lcf.framework.annotation.DictFile;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 电影(Movie)表实体类
 *
 * @author lcf
 * @since 2025-05-07 22:23:21
 */
@NoArgsConstructor
@Data
public class MovieDTO {
    //电影名称
    @Schema(description = "电影名称")
    @NotBlank(message = "电影名称不能为空")
    private String movieName;
    //电影简介
    @Schema(description = "电影简介")
    private String movieInfo;
    //电影海报
    @Schema(description = "电影海报")
    @DictFile
    private String movieImg;
    //片长（分钟）
    @Schema(description = "片长（分钟）")
    @Min(value = 1, message = "片长不能小于1")
    private Integer movieLength;
    //上映年份
    @Schema(description = "上映年份")
    @Min(value = 1900, message = "上映年份不能小于1900")
    private Integer movieYear;
    //制片地区
    @Schema(description = "制片地区")
    private String movieArea;
    //电影评分
    @Schema(description = "电影评分")
    private BigDecimal movieScore;
    //电影地址
    @Schema(description = "电影地址")
    @DictFile
    private String url;
    //演职人员
    @Schema(description = "演职人员")
    private List<MoviePerformerDTO> moviePerformers;
    //电影类型
    @Schema(description = "电影类型")
    private List<MovieTypeDTO> movieTypes;
}

